#include <REGX52.H>
#include "delayms.h"
/**
  * @brief 获取矩阵键盘中按下的按键编号
  * @param  index
  * @param  num 
  * @retval 0-16 0表示没有按下按键;1-16矩阵键盘中的某个按键编号
  */
unsigned char GetKeyCode(){
	unsigned char keyCode=0;
	 //假设按键在第一列
	  P1=0XFF;//全部置高电平，让引脚无效
	  P1_3=0;//第一列按键引脚
  if(P1_7==0){
		Delay_ms(20);while(P1_7==0);Delay_ms(20);keyCode = 1;
	}
	if(P1_6==0){
		Delay_ms(20);while(P1_6==0);Delay_ms(20);keyCode = 5;
	}
	if(P1_5==0){
		Delay_ms(20);while(P1_5==0);Delay_ms(20);keyCode = 9;
	}
	if(P1_4==0){
		Delay_ms(20);while(P1_4==0);Delay_ms(20);keyCode = 13;
	}
	
	// 假设按键在第二列
	P1 = 0xFF;
	P1_2 = 0; 
	if(P1_7==0){
		Delay_ms(20);while(P1_7==0);Delay_ms(20);keyCode = 2;
	}
	if(P1_6==0){
		Delay_ms(20);while(P1_6==0);Delay_ms(20);keyCode = 6;
	}
	if(P1_5==0){
		Delay_ms(20);while(P1_5==0);Delay_ms(20);keyCode = 10;
	}
	if(P1_4==0){
		Delay_ms(20);while(P1_4==0);Delay_ms(20);keyCode = 14;
	}
	
	// 假设按键在第三列
	P1 = 0xFF;
	P1_1 = 0; 
	if(P1_7==0){
		Delay_ms(20);while(P1_7==0);Delay_ms(20);keyCode = 3;
	}
	if(P1_6==0){
		Delay_ms(20);while(P1_6==0);Delay_ms(20);keyCode = 7;
	}
	if(P1_5==0){
		Delay_ms(20);while(P1_5==0);Delay_ms(20);keyCode = 11;
	}
	if(P1_4==0){
		Delay_ms(20);while(P1_4==0);Delay_ms(20);keyCode = 15;
	}	
	
	// 假设按键在第四列
	P1 = 0xFF;
	P1_0 = 0; 
	if(P1_7==0){
		Delay_ms(20);while(P1_7==0);Delay_ms(20);keyCode = 4;
	}
	if(P1_6==0){
		Delay_ms(20);while(P1_6==0);Delay_ms(20);keyCode = 8;
	}
	if(P1_5==0){
		Delay_ms(20);while(P1_5==0);Delay_ms(20);keyCode = 12;
	}
	if(P1_4==0){
		Delay_ms(20);while(P1_4==0);Delay_ms(20);keyCode = 16;
	}
	
	return keyCode;
  
  
  
  
  }